Skip to main content

Installation DNS Autoritaire et Récursive

Nous allons installer un serveur DNS Autoritaire(dns-auth) et Récursive(dns-solve) sur les conteneurs LXD sur notre VM.

A la fin nous allons essayer de pinger un PC de notre domain(local) et un website a partir de notre VM via dns-solve.

DNS Autoritaire;

Dans cette partie nous allons installer un serveur DNS autoritaire avec NSD (Name Server Daemon) sur un conteneur LXD.

Étape 1 : Créer et Accéder au Conteneur LXD

Nous créons notre conteneur LXD et accédons-y;

lxc launch ubuntu:22.04 dns-auth
lxc exec dns-auth /bin/bash

Étape 2 : Installation de NSD

Avant d'installer NSD, assurez-vous que le système est à jour et installez le paquet NSD.

apt update && apt install -y nsd

Étape 3 : Configuration de NSD

La configuration de NSD se trouve généralement dans le répertoire /etc/nsd/. Vous devez éditer le fichier de configuration principal nsd.conf.

Ou vous pouvez ajouter un fichier de conf dans le reportoire /etc/nsd/nsd.conf.d.

cd /etc/nsd.conf.d && vim nsd.conf

On a ajouté la partie "zone";

Output

Étape 4 : Démarrage de NSD

Pour éviter les conflits, nous désactivons le service systemd-resolved.service et démarrons le service NSD ;

systemctl stop systemd-resolved.service
systemctl disable systemd-resolved.service
systemctl start nsd

dig free.fr @127.0.0.1 ne fonctionne pas. Parce que ce n'est pas un dns recursive. En plus on doit créer le fichier "/etc/nsd/local.zone".

Étape 5 : Création de fichier local.zone

J'ai recherché "dns zone file simple" sur Google et j'ai copié à partir de ce site ;
https://www.zytrax.com/books/dns/ch6/mydomain.html

$TTL	86400 ; 24 hours could have been written as 24h or 1d
; $TTL used for all RRs without explicit TTL value
$ORIGIN example.com.
@ 1D IN SOA ns1.example.com. hostmaster.example.com. (
2002022401 ; serial
3H ; refresh
15 ; retry
1w ; expire
3h ; nxdomain ttl
)
IN NS ns1.example.com. ; in the domain
IN NS ns2.smokeyjoe.com. ; external to domain
IN MX 10 mail.another.com. ; external mail provider
; server host definitions
ns1 IN A 192.168.0.1 ;name server definition
www IN A 192.168.0.2 ;web server definition
ftp IN CNAME www.example.com. ;ftp server definition
; non server domain hosts
bill IN A 192.168.0.3
fred IN A 192.168.0.4

J'ai copié le script à partir du site que j'ai mentionné et je l'ai collé, puis modifié.

vim /etc/nsd/local.zone

Output

"first" est un client, dns-auth est notre serveur dns-auth.

DNS Récursive;

Dans cette partie nous allons installer un serveur DNS récursive avec unbound sur un conteneur LXD.

Étape 1 : Créer et Accéder au Conteneur LXD

Nous créons notre conteneur LXD et accédons-y;

lxc launch ubuntu:22.04 dns-solve
lxc exec dns-solve /bin/bash

Étape 2 : Installation de UNBOUND

Avant d'installer unbound, assurez-vous que le système est à jour et installez le paquet UNBOUND.

apt update && apt install -y unbound

Étape 3 : Configuration de UNBOUND

Vous devez éditer le fichier de configuration /etc/unbound/unbound.conf.d/root-auto-trust-anchor-file.conf.

vim /etc/unbound/unbound.conf.d/root-auto-trust-anchor-file.conf

Output

"local" est notre domaine qu'on a créé avec serveur dns-auth.
"10.196.244.155" est l'IP de notre serveur dns-auth.

Test depuis notre VM;

Pout tester; on a ajouté l'IP(10.196.244.140) de notre serveur dns-solve sur le fichier /etc/resolv.conf comme nameserver.

sudo vim /etc/resolv.conf

Output

Finalement les deux commandes suivantes marchent.

ping first.local
ping free.fr

On a defini notre domain "local" sur l'interface de LXD.

resolvectl dns lxdbr0 10.196.244.155
resolvectl domain lxdbr0 local